package com.witframework.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;

/**
 * 数值操作类
 * @author wuxinyang
 *
 */
public class NumberUtil {
	/**
	 * 提供精确的小数位四舍五入处理。
	 * @param v  需要四舍五入的数字
	 * @param scale 小数点后保留几位
	 * @return 四舍五入后的结果
	 */

	public static double round(double v, int scale) {
		if (scale < 0) {
			throw new IllegalArgumentException(
					"The scale must be a positive integer or zero");
		}
		BigDecimal b = new BigDecimal(Double.toString(v));

		BigDecimal one = new BigDecimal("1");

		return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	
	/**
	 * 格式化数据
	 * @param v
	 * @param scale 小数点后保留几位
	 * @return string-格式化的字符串
	 */
	public static String formatDouble(double v, int scale) {
		String fmtPattern = "0";
		if(scale>0){
			fmtPattern+=".";
			for(int i=0;i<scale;i++){
				fmtPattern+="0";
			}
		}
		DecimalFormat fm=new DecimalFormat(fmtPattern);
		fm.setMinimumFractionDigits(scale);
		return fm.format(v);
	}
}
